package com.crm.service.customerManager;

import com.crm.model.entity.customerManager.SingleProductCustomerContact;

import java.util.List;

/**
 * @ Author ：pym
 * @ Date   ：2021/5/12 18:32
 */
public interface SingleProductCustomerContactDbService {
    /**
     * 单品客户联系人
     * @Author pym
     * @Date  2021/5/12 18:34
     * @param singleProductCustomerId 单品客户主键ID
     * @param accountId 账号ID
     * @return {@link {java.util.List<com.crm.model.entity.customerManager.SingleProductCustomerContact>}}
     */
    List<SingleProductCustomerContact> selectSingleProductCustomerContactList(String singleProductCustomerId,
                                                                              String accountId);

    /**
     * 新增单品客户联系人
     * @Author pym
     * @Date  2021/5/13 10:41
     * @param singleProductCustomerContact 单品客户联系人
     * @return {@link {java.lang.Boolean}}
     */
    Boolean addSingleProductCustomerContact(SingleProductCustomerContact singleProductCustomerContact);

    /**
     * 判断联系方式是否重复
     * @Author pym
     * @Date  2021/5/13 11:17
     * @param contactInformation 联系方式
     * @return {@link {java.lang.Boolean}}
     */
    Boolean isContactInformationRepeated(String contactInformation);

    /**
     * 单品客户线上跟进联系人
     * @Author pym
     * @Date  2021/5/13 14:14
     * @param singleProductCustomerId 单品客户主键ID
     * @param accountId 账号ID
     * @return {@link {java.util.List<com.crm.model.entity.customerManager.SingleProductCustomerContact>}}
     */
    List<SingleProductCustomerContact> selectSingleProductCustomerContactById(String singleProductCustomerId, String accountId);

    /**
     * 单品客户-跟进-联系人回显
     * @Author pym
     * @Date  2021/5/13 15:39
     * @param singleProductCustomerId   --单品客户id
     * @param contactName  --联系人姓名
     * @return {@link {java.util.List<com.crm.model.entity.customerManager.SingleProductCustomerContact>}}
     */
    List<SingleProductCustomerContact> selectSingleProductCustomerContacts(String singleProductCustomerId, String contactName, String accountId);

    /**
     * 根据单品客户id和联系方式判重，是否插入单品客户联系人
     * @Author pym
     * @Date  2021/5/13 21:15
     * @param contactInformation 联系方式
     * @return {@link {java.lang.Boolean}}
     */
    SingleProductCustomerContact isInsertSingleProductCustomerContact(String contactInformation);

    /**
     * 新增单品客户联系人
     * @Author pym
     * @Date  2021/5/13 21:30
     * @param singleProductCustomerContact 单品客户联系人
     * @return {@link {java.lang.Boolean}}
     */
    Boolean insertSingleProductCustomerContact(SingleProductCustomerContact singleProductCustomerContact);

    /**
     * 单品客户线上跟进判断联系人是否存在
     * @Author pym
     * @Date  2021/6/16 14:09
     * @param singleProductCustomerId 单品客户Id
     * @param contactInformation 联系方式
     * @param accountId 账号Id
     * @return {@link {com.crm.model.entity.customerManager.SingleProductCustomerContact}}
     */
    SingleProductCustomerContact getSingleProductCustomerContactById(String singleProductCustomerId, String contactInformation, String accountId);

    /**
     * 查询单品客户下联系人Id
     * @Author pym
     * @Date  2021/7/15 11:18
     * @param singleProductCustomerId 单品客户Id
     * @return {@link {java.util.List<java.lang.String>}}
     */
    List<String> selectSingleProductCustomerContactIdList(String singleProductCustomerId);

    /**
     * 批量删除单品客户下联系人
     * @Author pym
     * @Date  2021/7/15 11:20
     * @param ids 单品客户下联系人Ids
     * @return {@link {int}}
     */
    int batchDelSingleProductCustomerContactByIds(List<String> ids);
}
